package com.wisewin.circle.dao;

import com.wisewin.circle.entity.db.GroupDO;
import com.wisewin.circle.entity.dto.ActivitySignUserDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.List;

@Component
public interface GroupDAO {

    public void insert(@Param("obj") GroupDO groupDO);

    public GroupDO queryGroupById(Integer groupId, Integer status);

    public void updateAmountRemain(Integer groupId, Integer amountRemain);

    public List<GroupDO> queryUserGroupList(Map<String, Object> map);

    public int queryUserGroupCount(Map<String, Object> map);

    public List<GroupDO> queryUserGroupJoinList(Map<String, Object> map);

    public int queryUserGroupJoinCount(Map<String, Object> map);

    public void updateCommentNum(Integer groupId);

    public void cancleCommentNum(Integer groupId);

    public GroupDO queryGroupDetail(Integer groupId);

    public List<ActivitySignUserDTO> queryGroupUserJoin(Integer groupId);

    public Integer queryGroupJoinCount(Map<String, Object> map);

    public List<ActivitySignUserDTO> queryGroupJoinList(Map<String, Object> map);

    public Integer queryGroupCount(Map<String, Object> map);

    public List<GroupDO> queryGroupList(Map<String, Object> map);

    public void updateStatus(Integer groupId, Integer status);

    public List<GroupDO> queryNeedEndGroup();
}
